package cn.doitedu.day06

import cn.doitedu.day01.utils.SparkUtil
import org.apache.spark.Partitioner

/**
 * @Date 22.4.4
 * @Created by HANGGE
 * @Description
 */
object C05_测试默认分区器 {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil.getSc
    // 本地集合转换成RDD  不需要分区器的 slice方法
    val rdd = sc.makeRDD(List(("a", 1), ("b", 1), ("a", 1), ("c", 1), ("d", 1) , ("g",1)), 2)
     //分组的算子  产生
    val rdd2 = rdd.groupByKey(new  MyPartitioner(3))
   // 分区的个数没有变化
    rdd.mapPartitionsWithIndex((p,iters)=>{
      iters.map(e=>e+"---所在的分区是: "+p)
    }).foreach(println)
   println("分组后:=================分区后的数据==================")
    rdd2.mapPartitionsWithIndex((p,iters)=>{
      iters.map(e=>e+"---所在的分区是: "+p)
    }).foreach(println)

  }

}

